# 参数解包
def fn(a,b,c) :
    print(a)
    print(b)
    print(c)
t = (10,20,30)
fn(*t)
# 传递实参时，也可以在序列类型的参数前添加*号，这样它会自动将序列中的元素依次作为参数传递
# 这里要求序列中的元素个数必须和形参的个数一致

# 创建一个字典
d = {'a':100,'b':200,'c':300}
# 通过**来对一个字典你进行解包操作
# 返回值就是函数执行以后返回的结果
# return 后面跟什么值，函数就会返回什么值
# return 后面可以跟任意对象，返回值甚至是一个函数
def fn2():
    print('hello')
    print('world')
    return
fn2()
# return一旦执行函数自动结束
# break 用来退出当前循环
# continue 用来跳过当次循环

def sum(*nums):
    result = 0
    for n in nums :
        result += n
    return result 
r = sum(123,231,453)
print(r)
# sum 和 sum()的区别
# sum 是函数对象，打印它实际上是打印函数对象
# sum()是在调用函数，打印它实际上是在打印函数的返回值
print(sum)
print(sum())


